// * 作为一个好的做法，异步行为应该始终返回一个 promise。

// * promise.then(f1).catch(f2); 和 promise.then(f1, f2); 是不一样的。

// * 不同之处在于，如果 f1 中出现 error，那么在这儿它会被 .catch 处理：
// * promise.then(f1).catch(f2)

// * 这样则不会：
// * promise.then(f1, f2)

// ************************************************************************************************************************************************

// * promise 链的例子：

let promise = new Promise((resolve) => {
	setTimeout(() => resolve(1), 1000)
})
	.then((result) => {
		console.log(result)
		return new Promise((resolve) => {
			setTimeout(() => resolve(2), 1000)
		})
	})
	.then((result) => {
		console.log(result)
		return new Promise((resolve) => {
			setTimeout(() => resolve(3), 1000)
		})
	})
	.then((result) => {
		console.log(result)
		return new Promise((resolve) => {
			setTimeout(() => resolve(4), 1000)
		})
	})
	.then((result) => {
		console.log(result)
		return new Promise((resolve) => {
			setTimeout(() => resolve(5), 1000)
		})
	})
	.then((result) => {
		console.log(result)
		return new Promise((resolve) => {
			setTimeout(() => resolve(6), 1000)
		})
	})
